1. Field
The present disclosure pertains to the field of information processing, and, more specifically, to the field of information processing security.
2. Description of Related Art
In many information processing systems, two or more separate processes may share a single cache. In a first example, two processes may alternately be executed on a single processor having a single cache. In a second example, a processor may have a feature that allows the concurrent execution of multiple processes, with instruction-level interleaving and parallelism, and each of these multiple processes may use the processor's cache. Such situations present the possibility of information leakage between processes, making these systems vulnerable to security problems.
For example, where two processes share a single cache, a first process may be able to discover secret information about a second process by monitoring its own execution time to reveal cache misses. These cache misses may reveal information about the memory access patterns of the second process, because the cache misses may indicate whether or not the second process is evicting specific cache entries of the first process. If the cache is direct-mapped or set-associative, then the knowledge of which cache entries are being evicted may be used to gather information about which memory locations the second process is using. When the second process is using table-based lookup to perform encryption or decryption with a cryptographic key, its memory access patterns may reveal which table entries it is using. Through cryptanalysis, the value of the key may be determined based on the knowledge of which table entries are being used.